package com.yy.tech.inte.service.intercepter;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 用于标识方法支持拦截
 *
 * @author YY
 * @version 1.0.0
 * @date $ $
 * @description: TODO
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface RestInterceptor {

    /**
     * 当Condition 条件为true时，触发
     * @return
     */
    String condition() ;

    /**
     * 如果条件不满足，默认false
     * @return
     */
    boolean ifMissing() default false;

    /**
     * 拦截后，处理Response的Bean名称，优先于类方式
     * @return
     */
    String interceptorName() default "";

    /**
     * 指定满足条件时的response类
     * @return
     */
    Class<? extends RequestInterceptor> interceptor() default RequestInterceptor.Impl.class;
}
